package demo0519;


import java.util.List;


import java.util.List;
import java.util.Scanner;

/**
 * TestList类用于实现员工管理的业务逻辑
 * 提供添加、删除、修改、查询员工等功能
 */
public class TestList {

    /**
     * 添加员工方法
     * @param list 员工列表
     * @param emp 要添加的员工对象
     */
    public void addEmp(List<Emp> list, Emp emp) {
        list.add(emp);
        System.out.println("添加成功！");
    }

    /**
     * 查询所有员工
     * @param list 员工列表
     */
    public void showAllEmp(List<Emp> list) {
        if(list.isEmpty()) {
            System.out.println("当前没有员工信息！");
            return;
        }
        System.out.println("所有员工信息：");
        for(Emp emp : list) {
            System.out.println(emp);
        }
    }

    /**
     * 根据姓名查询员工
     * @param list 员工列表
     * @param name 要查询的员工姓名
     */
    public void findEmpByName(List<Emp> list, String name) {
        boolean found = false;
        for(Emp emp : list) {
            if(emp.getName().equals(name)) {
                System.out.println(emp);
                found = true;
            }
        }
        if(!found) {
            System.out.println("未找到姓名为 " + name + " 的员工");
        }
    }

    /**
     * 删除员工
     * @param list 员工列表
     * @param number 要删除的员工工号
     */
    public void deleteEmp(List<Emp> list, String number) {
        boolean removed = list.removeIf(emp -> emp.getNumber().equals(number));
        if(removed) {
            System.out.println("工号为 " + number + " 的员工已删除");
        } else {
            System.out.println("未找到工号为 " + number + " 的员工");
        }
    }

    /**
     * 根据工号查询员工
     * @param list 员工列表
     * @param number 要查询的员工工号
     */
    public void findEmpByNumber(List<Emp> list, String number) {
        for(Emp emp : list) {
            if(emp.getNumber().equals(number)) {
                System.out.println(emp);
                return;
            }
        }
        System.out.println("未找到工号为 " + number + " 的员工");
    }

    /**
     * 根据工号修改员工年龄
     * @param list 员工列表
     * @param number 要修改的员工工号
     * @param newAge 新的年龄
     */
    public void updateAgeByNumber(List<Emp> list, String number, int newAge) {
        for(Emp emp : list) {
            if(emp.getNumber().equals(number)) {
                emp.setAge(newAge);
                System.out.println("修改成功！新信息：" + emp);
                return;
            }
        }
        System.out.println("未找到工号为 " + number + " 的员工");
    }
}